From 846bd69104e5d62f29b7282419827e52e99f3efd Mon Sep 17 00:00:00 2001 From: Roger Pau Monne Date: Fri, 3 May 2013 13:23:01 +0200 Subject: [PATCH] libxl: correctly parse storage devices on driver domains MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit Don't try to check physical devices if they belong to a domain different than the one where the toolstack is running. This prevents the following error when trying to use storage driver domains: libxl: debug: libxl_create.c:1246:do_domain_create: ao 0x1819240: create: how=(nil) callback=(nil) poller=0x1818fa0 libxl: debug: libxl_device.c:235:libxl__device_disk_set_backend: Disk vdev=xvda spec.backend=phy libxl: debug: libxl_device.c:175:disk_try_backend: Disk vdev=xvda, backend phy unsuitable as phys path not a block device libxl: error: libxl_device.c:278:libxl__device_disk_set_backend: no suitable backend for disk xvda Signed-off-by: Roger Pau Monné Acked-by: Ian Jackson --- tools/libxl/libxl_device.c | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/tools/libxl/libxl_device.c b/tools/libxl/libxl_device.c index a5cf446a24..b1fc4efe03 100644 --- a/tools/libxl/libxl_device.c +++ b/tools/libxl/libxl_device.c @@ -161,6 +161,12 @@ static int disk_try_backend(disk_try_backend_args *a, goto bad_format; } + if (a->disk->backend_domid != LIBXL_TOOLSTACK_DOMID) { + LOG(DEBUG, "Disk vdev=%s, is using a storage driver domain, " + "skipping physical device check", a->disk->vdev); + return backend; + } + if (a->disk->script) { LOG(DEBUG, "Disk vdev=%s, uses script=... assuming phy backend", a->disk->vdev); -- 2.30.2